package com.google.code.jtasks.manager;

import org.joda.time.ReadablePeriod;

import com.google.code.jtasks.manager.cache.TaskEnumsRegistry;
import com.google.code.jtasks.query.TaskQuery;
import com.google.code.jtasks.query.TaskQueryResult;

/**
 * TODO
 */
public interface ITaskRepoManager
{
	TaskEnumsRegistry getEnumsRegistry();

	/**
	 * Returns a new {@link TaskQuery} that can be run against this {@link ITaskRepoManager}'s task
	 * repository.
	 * 
	 * @return a new {@link TaskQuery} that can be run against this {@link ITaskRepoManager}'s task repository
	 */
	public TaskQuery createQuery();

	TaskQueryResult query(TaskQuery query);

	TaskQueryResult query(TaskQuery query, ReadablePeriod maxResultAge);
}
